【小ネタ】あるSecurityGroupが割り当てられているEC2インスタンスのリストを取得する
小ネタです。
EC2インスタンスも数が増えてくると、
どのインスタンスにどのセキュリティグループ(SG)が割り当てられているかわからなくなったり、
あるSGがどれとどれのインスタンスに割り当てられているか確認したくなったりしませんか?
私はします。というかしました。
方法
まず、対象のSGのグループIDを取得します。 マネジメントコンソールから探してもよいのですが、AWSCLIを使えばこうやってSGの一覧が得られるので、
$ aws ec2 describe-security-groups \ --query SecurityGroups[].[GroupName,GroupId] --output text default-ssh sg-3ea2xxxx default-http sg-f493yyyy :
この中から選びます。
例えば「sg-3ea2xxxx」が割り当てられているEC2インスタンスIDの一覧を取得したい場合は、下記のようになります。
$ aws ec2 describe-instances \ --filters Name=instance.group-id,Values=sg-3ea2xxxx \ --query Reservations[].Instances[].InstanceId [ "i-020b7ddf8zzzzzzzz", "i-08e952a8essssssss" ]
このように、
AWSCLIの--filters
と--query
は非常に強力で、無理かなーと思っていたものも案外検索できてしまうので、使い出すとなかなか楽しいです。
Developers.IOでも過去に下記のようなまとめ記事もありますので、興味のあるかたはご一読ください。